package com.system.manager.common.exception;

import com.system.manager.common.enums.ErrorCode;
import com.system.manager.common.enums.IErrorCode;
import lombok.Data;

/**
 * @Classname SysException
 * @Description TODO 定义异常的模板类，所有的模块需要继承这个类
 * @Date 2021/10/17 11:58
 * @Created by 杨小鹏：【241960695@qq.com】
 */
public class SysException extends RuntimeException{

    /**exception
     * 错误码
     */
    private Integer errorCode;

    /**
     * 错误消息
     */
    private String errorMsg;

    /**
     * 构造函数-通过errorCode和errorMsg构造异常对象
     * @param errorCode 错误码
     * @param errorMsg 错误信息
     */
    public SysException(Integer errorCode, String errorMsg) {
        this.errorCode = errorCode;
        this.errorMsg = errorMsg;
    }

    /**
     * 构造函数-通过IErrorCode对象构造异常对象
     * @param errorCode
     */
    public SysException(IErrorCode errorCode) {
        this(errorCode.getCode(), errorCode.getMsg());
    }

    public SysException(){
        errorCode = ErrorCode.SYSTEM_FAILED.getCode();
        errorMsg = ErrorCode.SYSTEM_FAILED.getMsg();
    }

    public Integer getErrorCode() {
        return errorCode;
    }

    public String getErrorMsg() {
        return errorMsg;
    }
}
